100 SYS700 110 ; < <> > 120 ; 1.3 130 ; ROBERT HUEHN MAR 1986 140 *=820 ; 820 TO 1021 150 ; 160 MEMSIZ =$37 ;TOP OF MEMORY 170 SYMPTR =$52 ;POINTER TO TABLE 180 SYMEND =$57 ;BOTTOM OF TABLE 190 LINE =$39 ;LINE NUMBER 200 CLR =$A663 ;DO CLR 210 EVAL =$AD9E ;EVALUATE EXPRESSION 220 CHKSTR =$B6A3 ;CHECK FOR STRING 230 SETNAM =$FFBD ;SET FILE NAME 240 SETLFS =$FFBA ;SET LOGICAL FILE 250 OPEN =$FFC0 ;OPEN FILE 260 CHKOUT =$FFC9 ;OUTPUT CHANNEL 270 CHROUT =$FFD2 ;PRINT 280 CLRCHN =$FFCC ;CLEAR CHANNELS 290 CLOSE =$FFC3 ;CLOSE 300 READY =$A474 ;READY 310 ; 320 LDA MEMSIZ:STA SYMPTR ;PROTECT 330 LDA MEMSIZ+1:STA SYMPTR+1 ;SYMBOL 340 LDA SYMEND:LDX SYMEND+1 ;TABLE FROM 350 JSR LOWER 360 JSR EVAL ;BASIC'S EVALUATE 370 JSR CHKSTR ;GET LENGTH AND POINTER 380 JSR SETNAM ;FOR KERNAL ROUTINE 390 LDA #8 ;FILE 8, DEV 8 400 TAX 410 LDY #1 ;SEC ADDR 1 420 JSR SETLFS 430 JSR OPEN 440 LDX #8 450 JSR CHKOUT 460 LDA #1:JSR DOUT ;FAKE START ADDRESS 470 LDA #0:STA LINE:STA LINE+1 480 LDA SYMPTR:LDX SYMPTR+1 490 JSR LOWER ;MOVE MEMSIZ BACK 500 SSS1 LDA SYMPTR ;CHECK FOR END OF 510 SEC ;SYMBOL TABLE 520 SBC #10 530 STA SYMPTR 540 BCS SSS2 550 DEC SYMPTR+1 560 SSS2 CMP SYMEND 570 LDA SYMPTR+1 580 SBC SYMEND+1 590 BCC DONE 600 LDA #1:JSR DOUT 610 INC LINE ;SAVE FAKE LINK AND NEW 620 BNE SSS3 ;LINE NUMBER 630 INC LINE+1 640 SSS3 LDA LINE:JSR CHROUT 650 LDA LINE+1:JSR CHROUT 660 LDY #0 670 SSS4 LDA (SYMPTR),Y 680 BEQ SSS5 690 JSR CHROUT ;SAVE SYMBOL NAME 700 INY:CPY #8 710 BNE SSS4 720 SSS5 LDA #" ":JSR CHROUT 730 LDA #$B2:JSR CHROUT ;SAVE ' =$' 740 LDA #"$":JSR CHROUT ;AND HEX VALUE 750 LDY #9:LDA (SYMPTR),Y:BEQ SSS6:JSR HEX 760 SSS6 DEY:LDA (SYMPTR),Y:JSR HEX 770 LDA #0:JSR CHROUT 780 JMP SSS1 790 HEX =* ;PRINT HEX NUMBER 800 PHA 810 LSR:LSR:LSR:LSR 820 JSR HE1 830 PLA:AND #$0F 840 HE1 CMP #10 850 BCC HE2 860 ADC #6 870 HE2 ADC #$30 880 JMP CHROUT 890 LOWER =* 900 STA MEMSIZ:STX MEMSIZ+1 910 JMP CLR 920 DOUT =* 930 JSR CHROUT:JMP CHROUT 940 DONE LDA #0:JSR DOUT 950 LDA #8 ;FINISH 960 JSR CLOSE 970 JSR CLRCHN 980 JMP READY